/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author freddy
 */
public class BaseConocimiento {

    /**
     * Datos Basicos de entrada
     * ----
     * C_P = Cantidad a producir
     */
    public static float C_P = 0;
    /**
     * Costos Basicos
     * Se basan en relacion a 1 lote de produccion
     * de Queso
     * GDL = Galon de leche - 500
     * DCS = Diclosal galon
     * Sal = Sal
     * BLS = Bolsas plasticas 
     * ETQ = Etiqueta
     * -----
     * CMO = Costo de mano de obra - 2Personas incluidas en el precio por Hora
     */
    public static float GDL = 17500, DCS = (float) 75.57, Sal = (float) 84.73, BLS = 60, ETQ = 40;
    public static float CMO = 35;
    /**
     * Cantidades a utilizar
     * Las variables representan las cantidades unitarias para un lote de produccion de queso
     */
    public static float C_GDL = 500, C_DCS = (float) 0.044, C_Sal = (float) 0.89, C_BLS = 20, C_ETQ = 20;
    /**
     * Consumo de KWH de las maquinarias
     * Transporte   - C_KWH_T
     * Descremadora - C_KWH_D
     * Mezcladora   - C_KWH_M
     * Empacado     - C_KWH_E
     */
    public static float CKWH = (float) 3.25135; //Costo por KWH consumido
    public static float C_KWH_T = (float) 0.15, C_KWH_D = (float) 0.15, C_KWH_M = (float) 0.15, C_KWH_E = (float) 0.15;
    /**
     * Tiempo de uso de las maquinarias por lote de produccion
     * ----------
     * Canoa Incluida los tiempos de las 2 canoas
     * Transporte Incluido los tiempos de los 5 Transportes
     * Descremadora
     * Mescladora
     * Empacado
     * ----------
     */
    public static float T_C = 50, T_T = 78, T_D = 20, T_M = 15, T_E = 25;

    /**
     * Calculo de los tiempos de produccion
     * por cada proceso maquina
     * DT_C = Calculo del tiempo total de produccion de las Canoas
     * DT_T = Calculo del tiempo total de produccion de los transporte
     * DT_D = Calculo del tiempo total de produccion de la descremadora
     * DT_M = Calculo del tiempo total de produccion de la Mezclador        return 0;a
     * DT_E = Calculo del tiempo total de produccion de la Empacadoras
     */
    public static float DT_C() {
        return BaseConocimiento.C_P * BaseConocimiento.T_C;
    }

    public static float DT_T() {
        return BaseConocimiento.C_P * BaseConocimiento.T_T;
    }

    public static float DT_D() {
        return BaseConocimiento.C_P * BaseConocimiento.T_D;
    }

    public static float DT_M() {
        return BaseConocimiento.C_P * BaseConocimiento.T_M;
    }

    public static float DT_E() {
        return BaseConocimiento.C_P * BaseConocimiento.T_E;
    }

    /**
     * Calculo de los costos de produccion
     * por cada proceso maquina
     * Costo de produccion en la kanoa - KWH de hora de produccion de las maquinarias
     * CP_T = Consumo KWH de las transportadoras
     * CP_D = Consumo KWH de la descremadora
     * CP_M = Consumo KWH de la mezcladora
     * CP_E = Consumo KWH de la Empacadora
     */
    public static float CP_T() {
        return (DT_T() / 60) * BaseConocimiento.CKWH * BaseConocimiento.C_KWH_T;
    }

    public static float CP_D() {
        return (DT_D() / 60) * BaseConocimiento.CKWH * BaseConocimiento.C_KWH_D;
    }

    public static float CP_M() {
        return (DT_M() / 60) * BaseConocimiento.CKWH * BaseConocimiento.C_KWH_M;
    }

    public static float CP_E() {
        return (DT_E() / 60) * BaseConocimiento.CKWH * BaseConocimiento.C_KWH_E;
    }

    /**
     * Calculo de los Totales
     */
    public static float Tiempo_Totales() {
        return DT_C() + DT_T() + DT_D() + DT_M() + DT_E();
    }

    public static float Costos_Totales() {
        return CP_T() + CP_D() + CP_M() + CP_E() + CC_GDL() + CC_DCS() + CC_Sal() + CC_BLS() + CC_ETQ();
    }

    /**
     * @see Otros costos Anexos
     */
    public static float CC_GDL() {
        return BaseConocimiento.C_P * BaseConocimiento.GDL;
    }

    public static float CC_DCS() {
        return BaseConocimiento.C_P * BaseConocimiento.DCS;
    }

    public static float CC_Sal() {
        return BaseConocimiento.C_P * BaseConocimiento.Sal;
    }

    public static float CC_BLS() {
        return BaseConocimiento.C_P * BaseConocimiento.BLS;
    }

    public static float CC_ETQ() {
        return BaseConocimiento.C_P * BaseConocimiento.ETQ;
    }

    public static float CC_MO() {
        return BaseConocimiento.CMO * D_Tiempo();
    }

    public static float D_Tiempo() {
        if (BaseConocimiento.Tiempo_Totales() == 0) {
            return 0;
        }
        int T = (int) BaseConocimiento.Tiempo_Totales() / 60;
        float TN = BaseConocimiento.Tiempo_Totales() / 60;
        if (T <= 1) {
            return 1;
        } else {
            if (T == TN) {
                return T;
            } else {
                return T + 1;
            }
        }
    }
}
